using System;
using System.Collections.Generic;
using ns26;
using ns27;

namespace Triton.Game.Mapping
{
	[Attribute38("ShaderPreCompiler")]
	public class ShaderPreCompiler : MonoBehaviour
	{
		public List<string> GOLDEN_UBER_KEYWORDS1 => method_3<Class249>("GOLDEN_UBER_KEYWORDS1")?.method_25();

		public List<string> GOLDEN_UBER_KEYWORDS2 => method_3<Class249>("GOLDEN_UBER_KEYWORDS2")?.method_25();

		public List<Vector3> MESH_VERTS => method_3<Class250<Vector3>>("MESH_VERTS")?.method_25();

		public List<Vector2> MESH_UVS => method_3<Class250<Vector2>>("MESH_UVS")?.method_25();

		public List<Vector3> MESH_NORMALS => method_3<Class250<Vector3>>("MESH_NORMALS")?.method_25();

		public List<Vector4> MESH_TANGENTS => method_3<Class250<Vector4>>("MESH_TANGENTS")?.method_25();

		public List<int> MESH_TRIANGLES => method_3<Class250<int>>("MESH_TRIANGLES")?.method_25();

		public bool SceneChangeShadersCompiled => method_2<bool>("SceneChangeShadersCompiled");

		public bool PremiumShadersCompiled => method_2<bool>("PremiumShadersCompiled");

		public ShaderPreCompiler(IntPtr address, string className)
			: base(address, className)
		{
		}

		public ShaderPreCompiler(IntPtr address)
			: this(address, "ShaderPreCompiler")
		{
		}

		public void Start()
		{
			method_8("Start");
		}

		public void WarmupSceneChangeShader(SceneMgr.Mode prevMode, PegasusScene prevScene, object userData)
		{
			method_8("WarmupSceneChangeShader", prevMode, prevScene, userData);
		}

		public GameObject CreateMesh(string name)
		{
			return method_14<GameObject>("CreateMesh", new object[1] { name });
		}
	}
}
